#include "boss.h"
#include<QtMath>
Boss::Boss()
{
    //敌机资源加载
    m_Boss.load(BOSS01_PATH);

    //敌机位置
    m_x=150;
    m_y=-500;

    //敌机速度
    m_Speed=ENEMY01_SPEED;

    //敌机矩形框
    m_Rect.setWidth(m_Boss.width());
    m_Rect.setHeight(m_Boss.height());


    m_Rect.moveTo(m_x,m_y);

    //敌机血量
    m_Blood=BOSS01_BLOOD;

    //敌机状态
    m_Free=1;
    //敌机子弹
    for(int i=0;i<BOSS01_BULLET_NUM;i++)
    {
        Boss_Bullet01s[i].m_Enemy_Bullet.load(":/rec.image/Boss01_bullet01.png");
        Boss_Bullet02s[i].m_Enemy_Bullet.load(":/rec.image/Boss01_bullet02.png");
        Boss_Bullet03s[i].m_Enemy_Bullet.load(":/rec.image/Boss01_Bullet03.png");
        Boss_Bullet04s[i].m_Enemy_Bullet.load(":/rec.image/Boss_bullet04.png");
    }


}

void Boss::Boss_updatePosition()
{
    //空闲状态敌机不计算坐标
    if(m_Free)
    {
        return;
    }
    m_y+=m_Speed;

    m_Rect.moveTo(m_x,m_y);
    //如果到达指定位置 不再移动
    if(m_y>=100)
    {
       m_y=100;
       if(t==0)
       {
           m_x--;
       }
       if(t==1)
       {
           m_x++;
       }

    }
    if(m_x==0)
    {
        t=1;
    }
    if(m_x==GAME_WIDTH-m_Rect.width())
    {
        t=0;
    }

}

void Boss::shoot()
{
    //累加时间间隔
     m_Recorder++;
     //如果记录的数字未达到发射子弹的时间间隔，不发射子弹
     if(m_Recorder<BOSS01_INTERVAL)
     {
         return;
     }
     //达到发射时间
     m_Recorder=0;
     //发射第一种子弹
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(Boss_Bullet01s[i].m_Free)
         {
             Boss_Bullet01s[i].m_Free=0;
             Boss_Bullet01s[i].m_x=m_x+100;
             Boss_Bullet01s[i].m_y=m_y+270;
             break;
         }
     }
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(Boss_Bullet01s[i].m_Free)
         {
             Boss_Bullet01s[i].m_Free=0;
             Boss_Bullet01s[i].m_x=m_x+365;
             Boss_Bullet01s[i].m_y=m_y+270;
             break;
         }
     }

     //第二种子弹
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {

         if(Boss_Bullet02s[i].m_Free)
         {
             Boss_Bullet02s[i].m_Free=0;
             Boss_Bullet02s[i].m_x=m_x+160;
             Boss_Bullet02s[i].m_y=m_y+270;
             break;
         }

     }
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {

         if(Boss_Bullet02s[i].m_Free)
         {
             Boss_Bullet02s[i].m_Free=0;
             Boss_Bullet02s[i].m_x=m_x+305;
             Boss_Bullet02s[i].m_y=m_y+270;
             break;
         }

     }

     //第三种子弹
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(Boss_Bullet03s[i].m_Free)
         {
             Boss_Bullet03s[i].m_Free=0;
             Boss_Bullet03s[i].m_x=m_x+5;
             Boss_Bullet03s[i].m_y=m_y+270;
             break;
         }
     }
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(Boss_Bullet03s[i].m_Free)
         {
             Boss_Bullet03s[i].m_Free=0;
             Boss_Bullet03s[i].m_x=m_x+460;
             Boss_Bullet03s[i].m_y=m_y+270;
             break;
         }
     }



     //第四种子弹
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(Boss_Bullet04s[i].m_Free)
         {
             Boss_Bullet04s[i].m_Free=0;
             Boss_Bullet04s[i].m_x=m_x+195;
             Boss_Bullet04s[i].m_y=m_y+8;
             break;
         }
     }
     for(int i=0;i<BOSS01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(Boss_Bullet04s[i].m_Free)
         {
             Boss_Bullet04s[i].m_Free=0;
             Boss_Bullet04s[i].m_x=m_x+270;
             Boss_Bullet04s[i].m_y=m_y+8;
             break;
         }
     }


}
